Artificial Intelligence (A.I.) is a very broad research area that focuses on “making computers think like people” and includes disciplines like neural networks, genetic algorithms, decision trees, frame systems, and expert systems. Knowledge representation is the area of A.I. concerned with how knowledge is represented and manipulated. Expert systems use knowledge representation to facilitate the codification of knowledge into a knowledge-base, which can be used for reasoning, i.e., this knowledge-base is operable to process data to infer conclusions. Expert systems are also known as knowledge-based systems and knowledge-based expert systems and are considered applied artificial intelligence. The process of developing with an expert system is knowledge engineering.
A rule engine is a suite of software modules that implements an Expert System using a rule-based approach. Generally speaking, a rule is a logical construct for describing the operations, definitions, conditions, and/or constraints that apply to some predetermined data to achieve a goal. For example, a business rule might state that no credit check is to be performed on return customers.
Generally speaking, a rule engine includes a suite of software modules or components that manages and automates the rules to implement the Expert System. For instance, the rule engine evaluates and fires one or more of the rules based on the evaluation. One advantage of a rule engine is the separation of the rules from the underlying application code. For many applications, the rules change more frequently than the rest of the application code. With the rules separated from the application code, the rule engine allows the business users to modify the rules frequently without the help of technical staff and hence, allowing the applications to be more adaptable with the dynamic rules.
The order in which the rules are executed may impact various aspects, such as the outcome of rule execution, overall efficiency of the rule engine, etc. For instance, executing Rule A before Rule B may cause Rule B to be removed. Thus, great care has to be exercised in defining the order of executing the rules. However, as the number of rules increases, the complexity of defining the execution order of the rules also increases, and the process becomes more difficult and error-proned.